package com.internetCafes.spms.web.customer.bizservice.role;

import com.internetCafes.spms.common.utils.entity.page.PageItemDTO;
import com.internetCafes.spms.common.utils.entity.page.PageItemVO;
import com.internetCafes.spms.web.customer.model.role.*;

import java.util.List;

/**
 * 角色管理bizService层
 */
public interface IEntRoleInfoBizService {

    /**
     * 获取角色菜单列表
     * 新菜单功能配置
     *
     * @return 菜单表格数据
     */
    List<RoleMenuListRes> listRoleMenu();

    /**
     * 获取当前用户菜单树状
     *
     * @return 菜单数据
     */
    List<RoleMenuTreeRes> getMenuTree();

    /**
     * 角色列表
     */
    List<EntRoleListRes> roleList();

    /**
     * 获取角色信息id
     *
     * @param id id
     * @return 角色详情
     */
    EntRoleDetailRes getRoleInfoDetail(Long id);

    /**
     * 获取角色列表结果树
     *
     * @return 角色树型结构列表
     */
    List<EntRoleTreeRes> getRoleTreeList();

    /**
     * 角色列表分页
     *
     * @param dto 请求参数
     * @return true/false
     */
    PageItemVO<EntRolePagingRes> roleInfoPaging(PageItemDTO<EntRolePagingReq> dto);

    /**
     * 修改角色信息
     *
     * @param req 请求参数
     * @return true/false
     */
    boolean updateRoleInfo(EntRoleUpdateReq req);

    /**
     * 批量删除角色 更具角色id列表
     *
     * @param roleIdArray 角色id列表
     * @return true/false
     */
    boolean deleteRoleByIdArray(Long[] roleIdArray);

    /**
     * 新增企业角色
     */
    boolean save(EntRoleSaveReq req);
}
